home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs47.d81
/
cbmhck4b.sfx
/
cbmhack.4-4
< prev
Wrap
Text File
|
1990-02-12
|
17KB
|
372 lines
╘HIS NEXT LINE IS WHERE ╔ SET THE DEFAULT SELECTION STATUS, TRANSLATION TYPE,
AND ├┬═ FILE TYPE FOR THE ═╙-─╧╙ FILES. ┘OU CAN CHANGE THESE DEFAULTS SIMPLY
BY OVERTYPING THE STRING IN ( ⁿ ⁿⁿⁿ ⁿⁿⁿ ) THE "╓" LOCATIONS.
╓ ╓╓╓ ╓╓╓
260 D$=RIGHT$(" "+STR$(DL),3)+" ASC SEQ " : REM ** DEFAULT SEL/TR/FT **
270 A$="" : FORI=0TO10 : A$=A$+CHR$(PEEK(DP+I)) : NEXT
280 A$=LEFT$(A$,8)+" "+RIGHT$(A$,3)
290 PRINT DL; A$
300 D$=D$+A$+" "
310 CL(DL)=PEEK(DP+26)+256*PEEK(DP+27)
320 SZ=PEEK(DP+28)+256*PEEK(DP+29)+65536*PEEK(DP+30)
330 DI$(DL)=D$+RIGHT$(" "+STR$(SZ),6)
340 SZ(DL)=SZ
350 NEXT DP
360 RETURN
370 :
371 REM ** REPORT MS-DOS DISK ERROR **
380 PRINT CHR$(18);"MS-DOS DISK ERROR #";MID$(STR$(E),2);
390 PRINT " ($";MID$(HEX$(E),3);"), PRESS KEY.";CHR$(146)
400 GETKEY A$ : RETURN
410 :
411 REM ** SCREEN HEADING **
420 PRINTCHR$(147);"MS-DEV=";MID$(STR$(DV),2);" MS-TYPE=";DT$;
430 PRINT" CBM-DEV=";MID$(STR$(CD),2):PRINT
440 RETURN
450 :
451 REM ** SCREEN FOOTING **
460 PRINT IL$;"D=DIRECTORY M=MS-DEV F=CBM-DEV Q=QUIT"
470 PRINT"T=TOGGLE-COLUMN, C=COPY-FILES, +/- PAGE";
480 RETURN
490 :
491 REM ** MAIN ROUTINE **
500 T=1 : C=0
510 R=0
520 GOSUB 420
530 PRINT "NUM S TRN TYP FILENAME EXT LENGTH"
540 PRINT "--- - --- --- -------- --- ------"
550 GOSUB 460
560 B=T+17 : IF B>DL THEN B=DL
570 PRINT FL$;: IF T>DL THEN 590
580 FOR I=T TO B : PRINT DI$(I) : NEXT
590 IF DL=0 THEN PRINT CHR$(18);"<NO FILES>";CHR$(146)
600 IF DL=0 THEN 660
610 PRINT LEFT$(IL$,R+5);CHR$(18);
620 ON C+1 GOTO 630,640,650
630 PRINT SPC(4);MID$(DI$(T+R),5,3) : GOTO 660
640 PRINT SPC(7);MID$(DI$(T+R),8,5) : GOTO 660
650 PRINT SPC(12);MID$(DI$(T+R),13,5) : GOTO 660
660 GETKEY A$
╧H SHI^╚OOT. ╔ SCREWED UP THE FOLLOWING LINE IN THE STRING AFTER THE
"+CHR$(13)+" PART. ┘OU'LL NOTICE THAT ╔ HAVE AVOIDED PUTTING CURSOR CONTROL
CHARACTERS INTO THE STRINGS EVERYWHERE ELSE, BUT ╔ FORGOT TO DO THAT HERE.
╘HE "√STUFF}" SHOULD BE ├URSOR╒P, ├URSOR─OWN, ├URSOR╠EFT, ├URSOR╥IGHT,
├URSOR╚OME, AND ├URSOR├╠╥ CONTROL CHARACTERS, RESPECTIVELY. ╘HESE CHARACTERS
GIVE THE INDEX FOR THE "ON" STATEMENT BELOW.
670 I=INSTR("DMFTC+-Q "+CHR$(13)+"√STUFF}",A$)
680 PRINT LEFT$(IL$,R+5);DI$(T+R)
690 IF I=0 THEN 600
700 ONIGOTO760,1050,1110,950,1150,1000,1020,730,860,860,770,790,810,830,850,500
710 STOP
720 :
721 REM ** VARIOUS MENU OPTIONS **
730 PRINT CHR$(147);"HAVE AN AWESOME DAY."
740 END
760 GOSUB 420 : GOSUB 140 : GOTO 500
770 R=R-1 : IF R<0 THEN R=B-T
780 GOTO 600
790 R=R+1 : IF T+R>B THEN R=0
800 GOTO 600
810 C=C-1 : IF C<0 THEN C=2
820 GOTO 600
830 C=C+1 : IF C>2 THEN C=0
840 GOTO 600
850 R=0 : C=0 : GOTO 600
860 IF DL=0 THEN 600
870 X=T+R : ON C+1 GOSUB 890,910,930
880 PRINT LEFT$(IL$,R+5);DI$(X) : GOTO 600
890 IF MID$(DI$(X),6,1)=" " THEN X$="*" :ELSE X$=" "
900 MID$(DI$(X),6,1)=X$ : RETURN
910 IF MID$(DI$(X),9,1)="A" THEN X$="BIN" :ELSE X$="ASC"
920 MID$(DI$(X),9,3)=X$ : RETURN
930 IF MID$(DI$(X),14,1)="S" THEN X$="PRG" :ELSE X$="SEQ"
940 MID$(DI$(X),14,3)=X$ : RETURN
950 IF DL=0 THEN 600
960 FOR X=1 TO DL
970 ON C+1 GOSUB 890,910,930
980 NEXT X
990 GOTO 520
1000 IF B=DL THEN T=1 : GOTO 510
1010 T=T+18 : GOTO 510
1020 IF T=1 THEN T=DL-(DL-INT(DL/18)*18)+1 : GOTO 510
1030 T=T-18 : IF T<1 THEN T=1
1040 GOTO 510
1050 PRINT IL$;CHR$(27);"@";
1060 INPUT"MS-DOS DEVICE NUMBER (8-30)";DV
1061 IF CD=DV THEN PRINT"MS-DOS AND CBM-DOS DEVICES MUST BE DIFFERENT!":GOTO1060
1070 INPUT"MS-DOS DEVICE TYPE (71/81)";X
1080 IF X=8 OR X=81 OR X=1581 THEN DT=255:DT$="1581" :ELSE DT=0:DT$="1571"
1090 POKE PK+16,DV : POKE PK+17,DT : SYS PK
1100 GOTO 520
1110 PRINT IL$;CHR$(27);"@";
1120 INPUT "CBM-DOS DEVICE NUMBER (0-30)";CD
1130 IF CD=DV THEN PRINT"MS-DOS AND CBM-DOS DEVICES MUST BE DIFFERENT!":GOTO1120
1140 GOTO 520
1141 :
1142 REM ** COPY FILES **
1150 PRINT CHR$(147);"COPY FILES":PRINT:PRINT
1160 IF DL=0 THEN FC=0 : GOTO 1190
1170 FC=0 : FOR F=1 TO DL : IF MID$(DI$(F),6,1)="*" THEN GOSUB 1200
1180 NEXT F
1190 PRINT : PRINT"FILES COPIED =";FC;" - PRESS KEY"
1191 GETKEY A$ : GOTO 520
1200 FC=FC+1
1210 X$=MID$(DI$(F),19,8)+"."+MID$(DI$(F),29,3)
1220 CF$="":FORI=1TOLEN(X$):IF MID$(X$,I,1)<>" " THEN CF$=CF$+MID$(X$,I,1)
1230 NEXT
1231 IF RIGHT$(CF$,1)="." THEN CF$=LEFT$(CF$,LEN(CF$)-1)
1232 CF$=CF$+","+MID$(DI$(F),14,1)
1240 PRINT STR$(FC);". ";CHR$(34);CF$;CHR$(34);TAB(20);SZ(F)"BYTES";
1245 PRINT TAB(35);MID$(DI$(F),9,3)
1250 CL=CL(F) : LB=SZ(F) - INT(SZ(F)/65536)*65536
╔ HAD TO USE A ─╧╨┼╬ STATEMENT HERE FOR DISK FILES BECAUSE THE REGULAR ╧╨┼╬
STATMENT DOES NOT REDIRECT THE ─╙ AND ─╙$ PSEUDO-VARIABLES. ┘OU'LL NOTICE
THAT THE NON-DISK ╧╨┼╬ STATMENT BELOW HAS A SECONDARY ADDRESS OF 7. ╘HIS IS
TO PUT THE PRINTER INTO LOWERCASE MODE IF YOU ARE OUTPUTTING DIRECTLY TO IT.
┘OU CAN REPLACE THIS WITH A 5 (OR WHATEVER) IF YOU HAVE A SPECIAL INTERFACE
TO AN ╔┬═-COMPATIBLE PRINTER AND YOU WANT TO PRINT DIRECTLY IN ┴╙├╔╔. ╔N THIS
CASE, YOU WOULD SELECT THE "┬╔╬" TRANSLATION MODE FOR THE FILE YOU ARE ROUTING
DIRECTLY TO THE PRINTER.
1260 IF CD>=8 THEN DOPEN#1,(CF$+",W"),U(CD) :ELSE IF CD<>0 THEN OPEN 1,CD,7
1265 IF CD<8 THEN 1288
1270 IF DS<>63 THEN 1288
1275 X$="Y" : PRINT "FILE EXISTS; OVERWRITE (Y/N)";
1280 CLOSE 1 : INPUT X$ : IF X$="N" THEN FC=FC-1 : RETURN
1285 SCRATCH(CF$),U(CD)
1286 DOPEN#1,(CF$+",W"),U(CD)
1288 IF CD<8 THEN 1320
1300 IF DS<20 THEN 1320
1310 PRINT CHR$(18)+"CBM DISK ERROR: "+DS$ : FC=FC-1 : CLOSE1 : RETURN
1320 POKE PK+19,CL/256 : POKE PK+18,CL-PEEK(PK+19)*256
1330 POKE PK+21,LB/256 : POKE PK+20,LB-PEEK(PK+21)*256
1340 TR=0 : IF MID$(DI$(F),9,1)="A" THEN TR=255
1346 X=1 : IF CD=0 THEN X=0
1350 SYS PK+6,TR,X
1355 RREG X,X,X,S : E=PEEK(PK+15)
1356 IF (S AND 1) THEN GOSUB 380 : FC=FC-1
1360 IF CD<>0 AND CD<8 THEN CLOSE1
1370 IF CD>=8 THEN DCLOSE#1 : IF DS>=20 THEN 1310
1380 RETURN
6. ╒╒┼╬├╧─┼─ ╞╔╠┼╙
╚ERE ARE THE BINARY EXECUTABLES IN UUENCODED FORM. ╘HE ├╥├32S OF THE TWO
FILES ARE AS FOLLOWS:
"LRR.128" 1106058594
"LRR.BIN" 460671650
╘HE "LRR.128" FILE IS THE MAIN ┬┴╙╔├ PROGRAM AND THE "LRR.BIN" FILE CONTAINS
THE MACHINE LANUGAGE DISK-ACCESSING ROUTINES.
BEGIN 640 LRR.128
═`1╤+'`╚`├╥!,25143$4@4─5$(%)%041%4┬╨@0┼─@0╒)!24<@0┼)50╘4╠(#,╨
═+5-%4"╘┘,┬╨@1─]2($,]($┴!0╘═)3─<@3─5434%'`%$<"╨`┌`(`<%`!#1++"
═*#$╪-┬─@(#╚@├╥`╩*┬!$149!54╤4($-"32╒$3╒,@1%))5─4@*┬╚`╧!╨9`$16
═╠├─┌1%2╥,"`@.┬`@├╥`╩*┬!-4╥╒$3╒,@1%))5─4╠(%194$4@*#`],34╫,2╨╥
═-34],34╪,2─`\┴╨:`(╠@1%:╥0╘0@╔╥!$5╦(╪.─14╠├`@.┬"/("╚╩($%,5$52
═3─%412!-4╥╒$3╒,@1%))5─4`^!╨;`#╚`&╤╘>`)─@╤╥@╤-#<╔.╥))3─┼424%,
═25╔)3─<╬+┬╪┬(#╚@╞0`╥'2@`_@(╨(#╚@4$╬╥╘2@┬.#`╨,"(╔`%╨=,@"+(,(╚
═4$╬╩.2╞╥╘2@┬0╘(┬*2"╧(,(╚4$╬╩,3`╔╠├$╙,2"╟(#8╨`)╨=-╨"9(─╤/041)
═3─<@34%#2$┼.12!,04┘'54%'12!23╒5424┘%4╥╪╬+┬(@.┬#^$2),4┼(╬0─┼.
═(┬╤5*$-$*0"_'3╨`┼╥!02┌╚╤-┬╤$5┬`┌()<@4$╬╩,3<╠1%0@.┬">(%!+`.,=
═1@"&(%0╠4┬╤"+$─╠020╠0╥╤$5"0╠1─╨─+$┼,)"╤8+%@─``(>4`"&($1))"@╤
═,├@╔+$-,*#$╥."─╠4╒╚╚,3(╪*0`╩'┼╚`┬╥!$5+(╥-34@╔╥!$5"2╥(├$╒.#$┬
═(#╦5($14)+(┬,34╫,2(`4!┘─`$9,)++'*#$┘*:╦'*#$╫*:╦'*#$╫*:╦'*#$╫
═*:╦'*#$╫*0!╘'╞╪`24╨─╠─9,)#╩!2;(╤╔#$┘.─┼,)+))3"2╩╤╥@╤-╥─┌@@!^
═'╟@`┬2`╒,#``┴!┌"`#╚`╔┴┌#`(\@*┬╚@3$]!1"!-4╥╒$3╒,@1$┼214-43╒)9
═("╚╩`,8>├`"9(─╤/041)3─<@1$┼214-43╒)9+┬╪╬(┬`┌()─`╓!┌6`)╪@4$╠@
═.┬">(%!+╩├,`╪1┌@`$1,╠├```!^╩`/╪)($),+$1#+$)(+%,@.┬!%╠╠(╚4$╬╩
═,34╔`!╚?═`"+("┴3(*\@,2─@╔╥"-(#,╪,"`┌((╪`.╤^^`)─┬4╘-!3─┘)3─<@
═1$┼214-43╒)9+┬╪╬(┬`┌()─`3!_(`$1"╠─),╩├(╒-╩╤"2`!='](`┬╥!$0[(╨
═(*<@,╙8╨`'╘?╫`"!($10╠─1"(*0@1$*╩,╙*╠*$1#╩╙$╔(*─@,╙(`╟1_╞`(╠@
═╨┬┴$4"╞╥,""╨(,(╚1%`╔╠├(╥.2"╟(#,╒,`"╫'_``┬╥#"*$10╩├$╥*2"╧(#(╘
═(*<@,╙4╨`,,?^@!$3+)$3*╚╤``<@!`%$)++)*"(@(╩╦$*$1,*2╨╙*:╚┬("`@
═("!!4╘,@(%-%42`@(┬`┌((\@*┬╚@1$5&055,5"!314╨╧5%(╧1┼0@*┬╚`,┬`.
═`4$─╠┬(┬(#╚@@4╞╥,*0╤,"`┌($$─╠─$─╩╠<╚╨┬┴$4*╔)*2─@.┬""`$╪@&`%!
═)++(*$$─+#@╔╩┬(@("*╩╥2┴!)"╨╙*0!;("(!╞2!$3#╠@020`;2`╠`40─╠─0─
═╩─$─╩┬(@("(`├┬`╓`4-,*$1,*;+"*$10╩├(╓*:╚╥-3:╠╨┬┴$4*╚╥-╥─`╬┬!`
═`5-:╠╠(╚1%"╩,├@╔╩├(╒-╩╙"*$10╩├(┘*:╚╓-34╙-╩╙"*$10╩├,╨*0#;($╚!
═1$──*$1,*;)$)*╦)*"(@("`@(╩╦$*%-:*2╨╓*0#╔(%0!4╒╚╚1$╨╔╠┼-:`/(@
═7@&"($10`/@@:`&.`/╪@<@$┌`",┴<╨&/("╚╩(%)%4$]25"!-4╥╒$3╒,@1$┼3
═2╥!%4┼)/4┬`╩*@!0(7╨!╞2#'*#$╪*3╠┬35,═1$]3($1)4╘╠@15)23╒(@(╥([
═╥┬├$*$4╔+#(╔.╨!](88!╞2`┬("@─(├╧**-(╚12─╠,╥─[(┬─╠(%!215-3($═%
═62╪┬.\<╚,30╓*0"+(9`!╚?─@020@.┬".`)$┴╞@$┌`*╨┴╞╨&/("╚╩(%-#4─5%
═3┬!(14%$24┘'("╚╩`.$┴╔`&9╤╥@╤-#<╔.╥)-4╥╒$158](├╧**,0╚1%8╔+#(╔
═.╥(@("`@35,═5%┼013╘┬.╘14)#╠``┬*╬`9─┬("`@($-"32╒$158](├╧**,0╚
═0╘0╔+#(╔.╔─`""*╪`8╪`#┬+"`3╚`*2+#`8\@*┬╚@4╘-2145.($9/3╒1)3─<@
═*┬╚`72+,`9─@24╨─.╥)$/41)4─5#5$]262`@33╒-4╥╒$158@($8]0╘)-+41%
═5┬!1/5%5250┬`(╘┬╒@&9(┼0]5$]'1╘╤%+4-/3%5-3┬╨@0╙╒#3╒!9+49)3$53
═+"`╦+╥╘@4$%'12([`),┬╪`&.`)─┬┌@$┌`+(┬┌╨&/("╚╩($╒!24╪@4─]55$┼.
═12`╩*@#`(╧0!5+(╤(#╚@0[(╨`,@┬_@%2╠├``╘┬((`╚╘@-#(╨``(├$@*9(").
═54╘@(%,@(%123┬`@5%┼0("!&24╤%3─%-12`@15┴4("!,14┘'5$@┬`#(├'`*9
═("(═+2╘@("╘@("╘═+2`@+2╘═("`═+2╘═+2╘═+2`@+2╘═("`═+2╘═+2╘┬`#╨├
═)@*-(#0╓,`!7(╙`"0╦)4╩├$╫(#╚@┬╥!"╠41,(*<@0╦)$3`!╨(╙╚"╞2!&3"0[
═.┬"+(%2╤1$╨@╔╥`╒.3``├2-$`╚$@2;)4(*0@0┬`┌()─@1$──*$─╔(#╚@@@"╓
═(╘╪"┬╥!$3+(╨(*<@╞2#'*#$╪*3╠┬/$┘/($9)3$53/┬([╤╥@╤-#8╔`,<├6`*+
═($1,╠├`@╔╥`╓-├``╫╥-┬`╔─@╥"┴)3"0╠4╩╚╒*3╧'*#$╪*3╠`]╥-╠`╔$@0┌╚╤
═((─@-├,╨+#8╘,"╨╓-3``&21╓`╔─@╔├0╔.\╚╚1$──*%2╩4┬─╠-2╨╙*2`┌((─@
═-├8╨`#╠─@`*9(*8╫*3╧**$1))"┴4╩┼(╔+#@╠-2─@.┬")(#8╓,`!?)(╚"╞2"╞
═,3(╔.\╚╚1$──*%2╩4┬─╠,3,╠-2─@.┬")(#8╓,`!╔))0"╚?─@020`─"2>`─╞╥
═╒"@┬1$╒&5$,╦+5$@(╩╦'*#$╙*:╚┬─1&='1.3(┬╤!)"─`╩┬2╚`╔─@╥"┴)3"0╠
═4╩╚╒*3═$220╚5*╔2*0"┌)+("┬╥!)╠├`@╔╥`╓,#``!┬6\`╔%)┬3<╓,"╨╤,#4╨
═+#$╤,3`╠.34╨+#$╤-3`╠,3`╨,"╨╤,#(╨+#<╙,"╨╪-├`╠.#8╨+#<╫,"╨╫.3`╠
═.#$╨+#@╙,"╨╪-3`╠-3`╨``╨┼╤@*0`!(┼╘`(┌`#,┼╘0*/("╚╩(%9!4─┼/55,@
═345.52!/4%1)3╘┘3("╚╩`%<┼╓@*9(,<╚,30╫*3╠┬2$%612!!3┬!!5╘533╘╒%
═($1!62╪┬`%╘┼┘`*``'<┼^`*-(#0╥,"`┌((╘@,30╨(#╚@┬2`╒,#``─24"`╒*╥
═4╩╠╤(#╚@┬╥!2╠╙`@╔╥!2╠─*╦5`";)0╨#┬2`╓,#``═246`╒*╥4╩╚╤(#╚@┬╥!4
═╩┼*╤0┬"╟(%*╥,`"_)2`#┬2`╓,#``╒╥4╩`╘.╥0┌╠╤(#╚@┬╥!#╠╙`@╔╥!#╠├(`
═╪24╘`╪─@-├`╨`/─┼/@-#╠─.╩,2`┌((╠@0[$╥(*<@0[(╨``,╞2`.)(#8╨,``9
═)┼(#4╦(╨(#╚@0[(╨(#╚@┬2`╓,#``*┬9<`╪╠@1$╥╥,""╟(#8╨,`!*)╞8#6+)4
═╩┼(@.┬"1($.╩,2"-(#@┘,"╨┘,3`╠.3,╨`&╚╞<`.9(,@╚24╨─+%*╩-2─[1$──
═*%@╔(#╚@┬2`╓,#``┼29┌`╪╠@╥┬┴$220╚6"─╠-┬╨╤*;(┬("(@╔╥!8)+(┬*┬(@
═.═4@6"2╥(┬`┬`*╪╞┴`/**$1))"┴8*2╨╓+#$╔╠┼@─(#╚@├@#=)╚╪#┬╥#**$1)
═)"┴8*2╨┘+#$╔╠┬)!(┬"╟(%@─╠┬)"24╪┬(#╦5(%@─╠┬)!4╘,┬`/8╞╞`/**$1)
═)"┴8*2╨┘+#,╔╠┼@─(#╚@├@`╞)┌(#┬╥#**$1))"┴8*2╨╤-"╨╤*;(┬4╥(@╔╥!8
═)+(┬4%)'(┬`┌╒2!8)+(┬4╘51(@!`)┌╨#╥┬┴$220╚6"─╠,30╠,╥╞╥6"0@.┬".
═`%$╟═@.+($1,╠├`@╔╥`╓,#``8"?``╪$@6+(╤(*0@1$╨`>"?*`┘$@0┌╚╤((╘@
═.#─╨+#─╤,"╨┘,╙``@"?4`╪(@6`"*)]╪#┬2`╒,├``╚╥?╚`╪╠@0╦)$3""╟(%2╥
═,2`┌((─@-3$╨`+8╟\@-4╠┼2╩,3@@.┬")(#4╤,`#┬)_╨#┬╥!4╠├$@╔╥!4╠─1,
═╩╥┴$3*╬╒*$1,╦3$╪*:╨╤."╞╩,2`┌((─@-3$╨`/╠╟!@14╠┼2╦,3@@.┬"+(%2╙
═,2"╟(%2╥,0`%*!`$┬2`╒,3``&┬@:!)─@24╨─.\<╚,├<╔.╥)`(├╠`0"@─!(4┬
═35,═1$]3($1%5─┼#12!.54╒"15(@*#@═,╙`╔(├═$5@"%*"4$┬╥!#1+)$5┬"╟
═()─┬35,═1$]3($%.1"!#0─╘═1$]3($1%5─┼#15,@35535"!"12!$249&15)%
═3┼0┴(├╩),3`╓,`"╩*"╪$┴2)-4╥╒$3╒,@1$5624-%(%194$4@("@╫,2\╪,2─┬
═.╒@`┌╥@╪!(╠@6+(╪(+`@6+(╪,2"╨(%┬╥,34╪,2"╟($14╠├(╒-3╔$5"2╥(├$╒
═.#$┬(#╦5($14╠├`┌1%0─╠┬(╤-3<╤(@`.*4($┼╥!02┌╚╤-┬╤$5┬`┌()<@4$╬╩
═,3<╠1%0@.┬">(%!+`!@╔3`2)(#4╥,``═*58$╞2!)3"0[╤╥@╥-╥─[(─`┬.╨!5
═*6`$┴2`┬0╘)-+41/4╥!$159)0╘4@3┼5-0─52("@╨+3,╨*2([0╘0`╞┬┼╩!(╠@
═0╘2╥1%8@╔╥"9(─╒3+41/4╥!!3─0@0╘)-+41/4╥!$159)0╘53($╒54╒0@0─4@
═1$┼&1─5214┘4(2(┌┬3$╤,├``╔"┼╘!(─@-3(╨`*╚╔=00┌`,$╔=@2/("╚╩($-/
═4%─@1─┼,15,@*┬╚`╫╥┼^!)─@╤╥@╤-#<╔.╥)#3╒!9($9)3$53(├╩9.╔─`^┬╞(
═!(╠@1$╥╥,""╟($9#╠├`@.┬")(#$╤.3``+╥╩2!$9#╠├`@.┬"!($:╥,2"─($1,
═(#╚@┬╥#**$1))"┴&*2╨╓+#$╔╠┬(╩(┬"╟((╘@,3(╨,``╫*╔╨$@┬!&`&,╩╔@29
═(#╚@╞2)&24╤%4╥!#3╒!)140@/2([1─,[(┬`═(%!215-3($═%62(`=2╩╟!*'┘
═($$─(#╚@┬2`╒,├``@2╩╨!$9#╠─9#╩├$`╩┬╩┌!%@─╠╠╚╚1$──*$8╔+#$┘+#@╔
═╩┬(╬(╩╦**$1))"┴&*2╨╥.2╨╙*0#┼*╠0$0╘8─╠┬(┬.╚%)╠├&─╨╥┴8)"─┌┬╥#*
═*%@─+$─╠,2╞╙╠2(@(┬"╟($-&)+)#1┬2╩╥┬┴8)"╤)+#$╔`.╠╩╙@2"`!0╦╙╨2+
═(,─╚0╘8─+#$╔╠┬(╬(┬"╟($-&)++(*$-&)"╙#*$-&)"╞╦,2─`,╥╧0!$-&)+)#
═1┬2╩(┬╨┬╩╠╚╚1$──*$8╔+#$╘+#$╔`&<╦╓`29(,0╚1─,╔.╥(╬("([╤╥@╙-"─[
═0╘8─.\<╚,╙0╔.┌,╥,"─[4╒╚╚1┬─┬0┼┼415,┬.╨"`*]╘$╞2"├,╙4╔.\╚╚1$──
═*$8╔+#─╠,╥─`╦╥╧┬!$-,╠─-,*$8╔(#╚@3$*╥4╒╚╚1┬─@╩╥"╒*%-:*$8╔╦38╒
═-3,╓*:╨╓-34╙-@#╔*^╨$┬╥!#1+&╥.""╟(/╪-(╙$╠*$-&)*╚┬+%<┬*2╤5*$-$
═*2`┌╒2"+($-$╠[$╨(*<@╟╥`╤+$-$+#<`^╥╧╤!(╠@0╘2╙.""╟(#$╥.#@`#╥╙╓
═!(╠@1%.╙╠38╙(*<@,3(╪.``^+/╠$6"2╥(┼─┬(#╚@╞2`┬1─┼,12!%6$┼35%,[
═($]615)74─┼412`╚62].*2([`&8╠``6@(#$@.┬"%(%@─(#╚@┬╥!8)+(┬3┬(@
═╔╥!&0[)&0┌╠╤(#╚@├@!╫+`4%\┬┴#1┬0╔+%4╚0╘0╔`)$╠!@7^#2,╤+"┴#1┬2╩
═(┬╤7(┬─╠52┴#1"─`╚╥╨(!8╠@0╘2╙.""╟(#$╙,├``═┬╨4!8╠@1%.╙,├`@╔╥`╤
═,╙(╨`.╨╠'@69(,<╚,3@╔╩┬)#0─╘@1$┼32╥!%4┼)/4├╚@(╩╔$4╥0@.┬!&0[)&
═0┌╠╤(#╚@╚#$@.┬".`!─═*`67(%!+╩├$┘+$-,╦3(╒-┬`┌()<@4$╬╩,3@╠0╘╥╦
═╨┬┴02┌╚╤.2╞╠,├4╓`$8═,@67(%!+╩├(╤+$╤"╦3(╒-┬`┌()<@4$╬╩,├`╠3$*╦
═╨┬┴02┌╚╥,2╞╠,├4╓`&╪═/`544╦(╨(#╚@┬╥#**$1))"┴&*2╨┘+#$╔╠┬)!(┬"╟
═(%12╠├(╒-0"%+4(%6+(╤(#╚@┬╥!#1+(╨(*<@6+(╨`)4═1@6>(%!+╩├8╠5%(╠
═6`"╤+4╠%_@─@6"╤8+%@╠4╥`┌($6╥╨┬┴02┌╚╤-2─`╘2╒,!8╠@*%,@╦╥`╤*2"╟
═((╘@,╙@╨(#╚@1─.╥1─.╦,0#╔+5`%┬╥!#1+.╤,""╧($-$╠╙@@╔╥"@,0`.+┼╚%
╔┬╥!#1+&╥.""╟(/╪/(╙$@.┬"+($13╠;(╥,""╟(#$╙,3``%"┘─!8╪`````
`
END
BEGIN 640 LRR.BIN
═`(!,68%,3╚),#╚3+@╨``````````````````````````````````````2*─`
═┴="═$(`@╠?^╔;╥"3_┌┼5(*├_)-`╨#┌─╨(*├_:""╚_╥30,`(88*─%├0^`.&"═
═`-╒)$(╘`╫6"╔""╨-╫/#[8"!@@*╪,╫"!7@(╔@╩1╚@*("0`6`@╦╧\─╘##.&"!'
═_╥╨-╫"!7@"!╚@(╘/@"─/╥0*╨):``(&┬`╞2*`╥,`&─/48╩0@@*("0`6"╔`2╨1
═@#`"╩00@╩/\@╦╧]@2(╚╔`0╚*"@╚╠$8`0`──0("┬`─`%@:""╚_┌─!(*├_╩0─@
═╩/\@╦╧]╪&"!'_╥╨-╫"!7@*─╪╚(6%`╚0#╩0"%!"╨1@#`#(!.!("╬!╠`╟╞!*4$
═╥0╞0┌╤┴88*─╪┴0*╞!!┬╔┴7╘┬@84#8``($`8.!`╨""┬!╚@(╘/@"─/╥0*0`6"┬
═`╩``╩0@╠#=╙╨^┌╘`╫4─0├0#=╦0╙<─0+(╘.╟╞`\╦0┘&"╔#╚╘`_┌╟_├2"`├2&`
═&-((#0$.╨┴@-`+┬)@*&&╞%╩*─╪&&"-((".(8"$!2"^@)`9╦0^`*0_)"_`"
═.&`@<╪"═(("╬(8"─!9#;8*╘@@*╪┴@*0%3&┬!╚╧_╚..─2╠/╩($/<8:1+(╩(╔@
═(*┌!╚@#`"9`(2)├╔":┴╚╚@'(8(8+(,"!┴0┬&"80*╔0┬╞":0*(&┬!─`%@┴0╥$
═#:("╚`"╤#)$&╥+$,─0;(╘/3╞#>8'╥═#═┘@╩┼"╠─*─!*╔`84*┘@╞┼"<─"─`:╔
═`(4)┘@├&"]"[&&`╪┌0*╨`8┬╬%╚#@`?`'"╚0')@>─!╤┴═'("0`<┬┬.(8&╚╔>&
═!┌╪6@$╙3@:─.├0#_╩0"@`"#`@2!╚@9`!8(4"┴`.@#;$"├1:`╥0.0!┌─\├0^`
═.&"@$+$"╥0+0\:`6╠0*-%╪#)!+#╞╚!&╤`╚╘9@,╞!╠-═*2─╔*├1┬`╚!.╤`╚╘:
═@,┬╤`╚╘;@*`8╠0+)"="_╚!╩╤`╠─"╘+>@#╦$"╥0'0╦┌╘7@`╚8:0&-'8`8;1┬`
═├1╥`╦1╩`╦!╬`..╘<@+`!┬(╘>@(╨?@*╘6@,─"╘`9.'╪!╬'╚"╔.*";┴0:$!┌─!
═╚`"╬%╪`@╘╪&0`6"╔.*"┴┴0:$!┌╘=@*``╦┴┬`(-.!─`%@╩3┬@╚:╪9@!┴@┴06$
═`╘8#:╚4$╔@,*)@,8902%`╚╔┼`╪4#&*4":3┬%`╩4#:9╬%`┌`"╠0*9!@"($/┬┼
═!2─!╘`┬┼!╥─/╩*4&8*4'╚@1&"&╦*╘/╩─"&"┼9*1┼("6"─`%@╩3┬@┼╪5@┴&&╔
═`(5┬╦1:`"╚5├╔62─92`┼@╪5─┴&7)_]`@╨`_0'*╘4@(5┬╩0&╬%╚#@`?`"╩0,═
═%8#0!:╪4@/`"┴6,@╧╚-@╔@_0`┴┴@(,╟_─`2-#╪!@╩?^╞8]`"╔6*%9╩``╠6`─
═#┴`&╩╦╘╪┴/`#(-+_╥,1╞╘.╨8╔6!┼9╚5@─`+╞83┬┼8╬5╞┴6*╨`╠9├╔6(%8]#$
═(,╙_&&"@#╚╨`_╪4.┴@^═$╚"╠$╪"%9(1┼3"╩$(&^#─`%@╔63)_]#╘╔67)#]#╬
═&&```````````!0)#0"3`````````````````````````"`┴(┬,─)28╟*"─╩
═*╥╨═+┬\╨,3(╙-#4╓-╙@┘.├╠\/3╪_0,'"╨\3%╤╠?(╥<╦+╙,╫.╙]#1╘═/4╒=;7
═╓-╟:6╒╤=7┼_`04)#1$5&1╘┴)2─═,34┘/4%%24╒155┼=865╦;╫-╫>╫╨``````
═````````````````````````````````````````````````````````````
═````````````````````````````````````````````````````````````
┴````````````````````````````````````````````````
`
END
--
7. ┬╔┬╠╔╧╟╥┴╨╚┘
╘HE FOLLOWING WORKS WERE CONSULTED IN CREATING THIS ARTICLE:
[1] ╩IM ┬UTTERFIELD, "╩IM ┬UTTERFIELD'S ├OMPLETE ├128 ═EMORY ═AP",
╙HOWN 88%, PRESS <╙╨┴├┼> FOR MORE, 'Q' TO QUIT, OR 'H' FOR HELP
_╘HE_╘RANSACTOR_, ╓OLUME 7, ╔SSUE 01, ╩ULY 1986 (┴ ═UST!).
[2] ├OMMODORE ┬USINESS ═ACHINES, _├OMMODORE_1571_─ISK_─RIVE_╒SER'S_╟UIDE_,
├┬═, 1985.
[3] ╙OME PROGRAM CALLED "MSDOS-TO-128" INCLUDED WITH "CS-DOS" BY
═. ╟-SOMETHING. ╧RIGINALLY PUBLISHED IN ├╧═╨╒╘┼!'S ╟AZZETTE, ╔ THINK.
[4] ├OMMODORE ┬USINESS ═ACHINES, _├OMMODORE_128_╨ROGRAMMER'S_╥EFERENCE_╟UIDE_,
┬ANTAM ┬OOKS, 1986.
[5] _╘HE_╘RANSACTOR_, ╓OLUME 4, ╔SSUE 05 ("╘HE ╥EFERENCE ╔SSUE"), ═AY 1983.
=============================================================================
╬EXT ╔SSUE:
╠EARNING ═ACHINE ╠ANGUAGE - ╨ART 5
╘HE ╙╨┴├┼ ╔╬╓┴╙╔╧╬ IS CONTINUED WITH THE DESIGN AND IMPLEMENTATION OF THE
PLAYER AND ALIEN ANIMATION ALONG WITH A LOOK AT DEVICE SCANNING FOR THE
1351 MOUSE, JOYSTICK AND KEYBOARD.
╙HOWN 92%, PRESS <╙╨┴├┼> FOR MORE, 'Q' TO QUIT, OR 'H' FOR HELP
╘HE 1351 ═OUSE ─EMYSTIFIED
╞INALLY! - ┴FTER 2 DELAYS, THIS ARTICLE WILL EXPLAIN HOW THE 1351 MOUSE
WORKS AS WELL AS PROVIDE A EASY TO USE INTERFACE IN MACHINE LANGUAGE FOR
BOTH BASIC AND MACHINE LANGUAGE PROGRAMMERS. ┴N EXAMPLE PROGRAM WILL BE
GIVEN TO ILLUSTRATE BOTH THE 1351 MOUSE AND THE MULTI-TASKING SYSTEM.
═ULTI-TASKING ON THE ├=128
┴ RUDIMENTARY MULTI-TASKING SYSTEM WILL BE IMPLEMENTED FOR TASKS TO RUN
CON-CURRENTLY WITH EACH OTHER. ╫HILE INTENDED FOR MACHINE LANGUAGE PROGRAMMERS
SOME DISCUSSION OF HOW TO USE THIS WITHIN BASIC WILL BE GIVEN SO THAT MORE THAN
ONE BASIC / ML PROGRAM CAN BE RUN AT A TIME. ┴N EXAMPLE PROGRAM WILL BE GIVEN TO
ILLUSTRATE BOTH THE 1351 MOUSE AND THE MULTI-TASKING SYSTEM.
╙TRETCHING SPRITES
┘OU MIGHT HAVE HEARD THAT IT IS POSSIBLE TO EXPAND SPRITES TO MORE THAN TWICE
THEIR ORIGINAL SIZE. ┬UT THERE IS NO NEED TO EXPAND ALL OF THEM EQUALLY. ╘HIS
ARTICLE WILL EXAMINE ON HOW TO EXPAND THEM 2,3 OR MORE MULTIPLES OF THEIR
ORIGINAL SIZE.
╠╔╘╘╠┼ ╥┼─ ╫╥╔╘┼╥: ═╙-─╧╙ FILE WRITER FOR THE 128 AND 1571/81 DRIVES.
╘HIS ARTICLE WILL EXTEND THE ╠ITTLE ╥ED ╥EADER PROGRAM TO BE ABLE TO WRITE
├OMMODORE-─╧╙ FILES TO AN ═╙-─╧╙ DISK.
=============================================================================
--
- ├RAIG ╘AYLOR ⁿⁿ ╙TANDARD ─ISCLAIMER ┴PPLIES (OF COURSE!)
DUCK@PEMBVAX1.PEMBROKE.EDU (╨EMBROKE ╙TATE ╒NIVERSITY)